package SetFieldValue;

import java.lang.reflect.Field;

public class SetFieldValue {

    public static void main(String[] args) throws Exception {

        //创建对象 p
        Person p = new Person("小明");
        // 输出初始值
        System.out.println(p.getName());

        // 通过反射，获取 p 的对应Person类结构信息
        Class c = p.getClass();
        // 获取 Person 类的 name 字段
        Field f = c.getDeclaredField("name");
        // 设置字段是否可以访问
        f.setAccessible(true);
        // 为指定对象的该字段赋值
        f.set(p, "小红");
        // 输出新值
        System.out.println(p.getName()); // "Xiao Hong"
    }
}
//创建 Person 类，一个字段 name ，对应一个取值器，和带参构造方法
class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

